import request from '@/utils/request'
import qs from 'qs' // 引入qs库用于处理表单数据

/**
 * 用户登录
 * @param {Object} data - 登录参数
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @returns {Promise} - 返回登录结果
 */
export function login(data) {
  return request({
    url: '/login',
    method: 'post',
    data: qs.stringify(data), // 将数据转换为表单格式
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  })
}

/**
 * 用户注册
 * @param {Object} data - 注册参数
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @param {string} data.email - 邮箱
 * @param {string} data.nickname - 昵称（可选）
 * @param {string} data.phone - 手机号（可选）
 * @returns {Promise} - 返回注册结果
 */
export function register(data) {
  return request({
    url: '/register',
    method: 'post',
    data,
    headers: {
      'Content-Type': 'application/json'
    }
  })
}

/**
 * 查询所有用户
 * @returns {Promise} - 返回用户列表
 */
export function selectAllUser() {
  return request({
    url: '/selectAllUser',
    method: 'get'
  })
}

/**
 * 检查邮箱是否存在
 * @param {string} email - 邮箱地址
 * @returns {Promise} - 返回检查结果
 */
export function checkEmail(email) {
  return request({
    url: '/check-email',
    method: 'get',
    params: { email }
  })
}

/**
 * 发送邮箱验证码
 * @param {string} email - 邮箱地址
 * @returns {Promise} - 返回发送结果
 */
export function sendEmailCode(email) {
  return request({
    url: '/sendEmailCode',
    method: 'get',
    params: { email }
  })
}

/**
 * 重置密码
 * @param {Object} data - 重置密码参数
 * @param {string} data.email - 邮箱地址
 * @param {string} data.code - 验证码
 * @param {string} data.newPassword - 新密码
 * @returns {Promise} - 返回重置结果
 */
export function resetPassword(data) {
  return request({
    url: '/reset-password',
    method: 'post',
    data,
    headers: {
      'Content-Type': 'application/json'
    }
  })
}